Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别?

您所在的位置:网站首页 linux opt文件在哪 Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别?

Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别?

2023-04-22 17:29| 来源: 网络整理| 查看: 265

接触Linux的同志们都听过一句话:“Linux下一切皆文件”。“一切皆是文件”是 Unix/Linux 的基本哲学之一,那么为什么Linux在一切皆文件呢?

首先,在windows中是文件的东西,它们在linux中也是文件,其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件.。

你可以使用访问文件的方法访问它们获得信息。甚至一些很离谱的东西,比如管道,也是文件。甚至类似于socket(套接字)这样的东西, 使用的接口跟文件接口也是一致的。

这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。

举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读PIPE)的操作都可以用read函数来进行;

几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用write函数来进行。

不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。

我们知道,本身Linux具有一个以根目录为树根的文件目录结构,每个设备也同样如此,它们是相互独立的。

如果我们想通过Linux上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。

1.虚拟文件系统VFS

VFS是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口。

虚拟文件系统(VFS)是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。

严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。(cite from百度百科)

比较晦涩难懂是不是?那么换一种描述:虚拟文件系统使得Linux可以存在多个“实际的文件系统”,比如分区1是ext2,分区2是ext3,分区3是fat32。

那么每个“实际的文件系统”的结构和操作方式是不一样的。如果是这样的话用户怎么去操作它们呢?

总不能每种不同的文件系统都采用不同的方法吧,那么这个时候就需要VFS作为中间层!用户直接控制VFS,VFS再去控制各个文件系统。

2.VFS存在的意义

可归结为以下四点:

对应用层提供一个标准的文件操作接口;

对文件系统提供一个标准的接口,以便其他操作系统的文件系统可以方便地移植到

Linux上;

VFS内部则通过一系列高效的管理机制,比如inode cache, dentry cache 以及文件系统的预读等技术,使得底层文件系统不需沉溺到复杂的内核操作,即可获得高性能;

此外VFS把一些复杂的操作尽量抽象到VFS内部,使得底层文件系统实现更简单。

标注

文件系统(一般可以分为以下几类)

网络文件系统,如 nfs、cifs、cdoa、afs等网络文件系统磁盘文件系统,如ext2/ext3/ext4文件系统;特殊文件系统,如 proc、sysfs、ramfs、tmpfs、pipe文件系统等。

最后福利时间,最近不少小伙伴找我要一些 Linux 学习资料,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理一份「10G Linux 学习资料大全」,免费共享给大家!

据说有小伙伴靠这份攻略顺利进入 BAT 哦,所以一定要好好学习这份资料!

几乎覆盖了 Linux 基础学习的方方面面,非常适合初学者入门!

资料也按目录进行编排,每一章下面都有更具体的内容,具体如下:

Linux 常用命令汇总

Linux 经典入门书籍

 ✔ Linux 网络编程教程

 ✔ Linux 成神学习线图

 ✔ 22 份 BAT 面经 pdf 合集

另外我还组建了一个「Linux 编程交流群」,群里每天大家都互相交流 Linux 学习心得,也有我们热心肠的小江美女程序媛给大家答疑。

 如果你是 Linux 新手,那我相信你可以迅速融入到这里面来,同时认识更多的编程大佬。

同样你可以靠着「10G Linux 学习资料大全」迅速度过新手阶段,让你上手 Linux 更加轻松。

大家想要上面「10G Linux 学习资料大全 + 进入编程交流群」,可以点击下方⬇️的卡片扫码进群免费领取。

我是沈小南,日常科普 Linux 自学干货,如果问答对你有用,欢迎双击收藏支持!

下面是往期的干货合集:

2022 年 Linux 自学攻略:

干货|零基础自学 Linux 有哪些免费资料?

干货|有哪些值得推荐的 Linux 学习视频教程?

干货|学习linux命令的书籍有哪些推荐?

干货|2022 年零基础如何学好 Linux?

2022 年 Linux 使用指南

干货|5大 Linux 版本推荐

干货|Linux 系统运维教程

干货|Linux 编程书籍推荐

干货|2022 年 Linux 下最好用的代码编辑器是什么?

2021 年最好的 Linux 服务器发行版



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3